Graphical user interface having contextual menus

ABSTRACT

A contextual pop-up menu of frequently used commands is displayed by an application whenever a user carries out a particular action. The contextual menu appears at the location of a cursor, so that the displayed commands are spatially very close to an item on which an action is to be performed. The commands which are displayed in the contextual menu are not limited to those provided by an application associated with the selected item. Other commands, such as system level commands, for help items or other types of user assistance features, can be added to the menu before it is displayed to the user. In addition, plug-in modules can be employed to provide other commands associated with the selected item.

FIELD OF THE INVENTION

The present invention is directed to graphical user interfaces that areemployed in computer systems, such as personal computers, and moreparticularly to a graphical user interface that provides a menu ofcommands that are specifically related to the context of an itemselected by a user.

BACKGROUND OF THE INVENTION

The evolution of the computer industry is unparalleled in its rate ofgrowth and complexity. Personal computers, for example, which began aslittle more than calculators having limited memory, tape-driven inputcapabilities and monochrome displays are now able to handle almost anydata processing task with relative ease. While the ever-growing increasein computing power provides greater capabilities for applicationprogrammers and end users alike, the corresponding increase incomplexity creates an ease of use problem. Consequently, computersystems designers are faced with a new challenge, namely to harness theavailable computing power in a form that is usable even by those withrelatively little computer training, to ease the transition of usersinto a computer-based information paradigm.

In pursuit of this objective, various input/output philosophies, such as“user friendly”, “wysiwig” and “menu driven”, have become popular. Theseapproaches to the input/output issue are particularly applicable tomicrocomputers, also known as personal computers, which are intended toappeal to a broad audience of computer users, including those who haveno previous computer experience. An important aspect of computers whichemploy these input/output concepts is the interface which allows theuser to input commands and data, and receive results. One particularlyprevalent form of interface is known as the graphical user interface(GUI).

One popular type of GUI display is based on a visual metaphor whichdefines a monitor screen to be a workspace known as a “desktop”, inwhich the contents of documents are presented in relocatable regionsknown as “windows.” In addition to windows, the graphical user interfacetypically includes icons that represent various objects in a computersystem. In this context, the term “object” refers to any software entitythat exists in the memory of the computer and constitutes a specimen ofa particular class. For example, an object can be a data file whichcontains the contents of a document. It can also be an applicationprogram or other type of service provider, such as a hardware driver. Anobject can also be a container for other objects, such as a folder or awindow.

One of the advantages offered by the graphical user interface, in termsof making the computer easier to use, is the ability for the user toeffortlessly manipulate objects by moving, or otherwise acting upon,their icon representations. For example, a graphical user interfacetypically includes a cursor, or a similar type of pointing device, thatis controlled by the user to select objects. By actuating a button orkey while the cursor is positioned over an icon, for example by clickinga mouse button, the user can select the object to perform an action uponit. If the icon represents an application program, the action might beto launch the program. If the icon represents a data file, the actionmight cause the file to be opened within the application program thatwas used to create it. Alternatively, the file can be copied, moved intoa folder, deleted, or the like.

Another feature of graphical user interfaces that contributes to theirease of use is menus, which provide a simple, straightforward method forthe user to view and choose commands that relate to an applicationrunning on the computer. In one popular format, a root menu is locatedin a menu bar at the top of the screen, immediately above the desktop.The menu bar contains a number of menu items which represent generalcategories of commands. If a user clicks a mouse button while the cursoris positioned over one of these items, a “pull-down” menu appears,listing the commands available within that category. For example, a“File” category might contain commands that are appropriate to files asa whole, such as “open”, “close” and “print.” Another category labelled“Edit” might contain commands relating to the editing of objects, suchas “copy”, “paste”, and the like. For further information relating topull-down menus, reference is made to U.S. Pat. Re. 32,632, thedisclosure of which is incorporated herein by reference.

Typically, when an action is to be performed upon an object, the userfirst selects the object, for example by clicking a mouse button whilethe cursor is positioned over the object, and then chooses theparticular command to be performed on the selected object. Thus, if theuser wishes to print a particular document, the user can first selectthe icon which represents that document, and then move the cursor to themenu bar and click upon the “File” category, to cause its pull-down menuto appear. The cursor is then scrolled down the menu until it ispositioned over the “print” command, at which time the user actuates themouse button to initiate the command to print the document.

While the graphical user interface has contributed significantly to theease of use of computers, particularly the ability to carry out actionsthrough a cursor and menus, it is desirable to further enhance the userexperience. For example, as with any new environment, a certain amountof learning time is required for beginning users to discover whichcommands are applicable in a particular context, and the locations ofthese commands within the various pull-down menus under the root menu.Further in this regard, similar commands may not appear under the sameheadings in different, but related applications. For example, in a textdocument, the user may desire to change the margins. In one wordprocessing program, the command for doing so may be located under a“format” category, whereas in another word processing application, itmay be located under a sub-category labelled “document” or the like.

Another factor to consider in the user experience is the physical effortrequired by the user. One form of effort is number of mouse buttonclicks, or similar types of key actuations, that are needed. Typically,one or more clicks are necessary to select an item, and an additionalone or more clicks are required to choose a command from the menu.Another form of effort is embodied in the distance that the cursor isrequired to travel throughout an operation. This distance is directlyrelated to the amount of travel that is required by a mouse, or theamount of rotation that a user must impart to a trackball, or the like,from the first click of the selection to the last click of the command.All of these factors combine to form the total duration of the actionthat is typically required on the part of the user, beginning with theselection of an item, moving to the menu bar, and choosing a command.

On computer systems with large or multiple monitors, these actions canresult in a rather lengthy process. For new users who must search forcommands, the process can be even longer. In addition, for computersystems having relatively small cursor control devices, such as portablecomputers which employ a small trackball, lengthy cursor movements canprove to be cumbersome.

Therefore, it is desirable to provide a graphical user interface whichmakes it easier for users to discover the commands that are appropriatein a given context, as well as give the user a more efficient means forquickly executing the commands.

BRIEF STATEMENT OF THE INVENTION

In accordance with the present invention, these objectives are met bymeans of menu-oriented interface known as a contextual menu. Generallyspeaking, a contextual menu is a pop-up menu that is displayed by anapplication whenever a user carries out a particular action. Forexample, this action might be the clicking of a special mouse button, orclicking a regular mouse button in combination with the depression of aparticular key on a keyboard. In response to this action, an applicationprogram associated with the selected item provides a menu of appropriatecommands, which are based on the current context, selection and cursorlocation. In one embodiment of the invention, the commands which appearin the contextual menu are those which are most frequently used with aparticular type of object.

The contextual menu appears on the desktop at the location of thecursor, rather than as a pull-down menu at the periphery of the desktop.Preferably, the displayed commands are spatially close to the item onwhich the action is to be performed, cutting down on the amount ofcursor travel that is needed to perform the action. In addition, sincethe menu contains those commands which are appropriate to the selection,it becomes easy for both new and experienced users to quickly determinethe commands that are available for different contexts in a newapplication.

As a further feature of the invention, the commands which are displayedin the contextual menu are not limited to those provided by a specificapplication that is associated with the selected item. Rather, othercommands can be added to the menu before it is displayed to the user.These other commands can include, for example, system level commands,such as help items or other types of user assistance features. Inaddition, plug-in modules can be employed to provide other commandsassociated with the selected item. For example, if a user selects anitem of text, a word processing program might provide commands forcutting, copying and pasting the text. A plug-in module for e-mailservices can provide the user with a command to send the selected textas a message to another user. Another plug-in module might provide theuser with a command that allows the selected text to be sent viafacsimile to a remote destination.

The foregoing features of the invention, and the advantages providedthereby, are explained in greater detail hereinafter with reference topreferred embodiments illustrated in the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer system, of a type in which thepresent invention might be implemented;

FIG. 2 is an illustration of an exemplary desktop displayed on acomputer's monitor;

FIGS. 3-4 are illustrations of the desktop with two different pull-downmenus;

FIG. 5 is an illustration of the desktop with a contextual menu;

FIG. 6 is an architectural block diagram of the software components thatoperate to display a contextual menu; and

FIG. 7 is a flow diagram of the procedure for displaying a contextualmenu.

DETAILED DESCRIPTION

To facilitate an understanding of the present invention, its underlyingprinciples are described hereinafter with reference to theirimplementation in a specific embodiment. In particular, certainreferences are made to features and terminology associated with theMacintosh® Operating System provided by Apple Computer, Inc. It will beapparent, however, that the practical applications of the presentinvention are not limited to this particular embodiment. Rather, it canbe utilized in any type of computer system that employs a graphical userinterface.

The present invention is directed to the manner in which a menu ofcommands is displayed to a user within a graphical user interface, topermit the user to perform actions on selected objects. The features ofthe invention can be implemented on a variety of different types ofcomputers. An exemplary arrangement for the hardware components of acomputer system is briefly described herein, to provide a thoroughunderstanding of the manner in which the features of the inventioncooperate with the components of a computer system to produce thedesired results.

Referring to FIG. 1, a computer system includes a computer 10 having avariety of external peripheral devices 12 connected thereto. Thecomputer 10 includes a central processing unit 14 and associated memory.This memory generally includes a main or working memory which istypically implemented in the form of a random access memory 16, a staticmemory that can comprise a read only memory 18, and a permanent storagedevice, such as a magnetic or optical disk 20. The CPU 14 communicateswith each of these forms of memory through an internal bus 22. Theperipheral devices 12 include a data entry device such as a keyboard 24,and a pointing or cursor control device 26 such as a mouse, trackball,pen, or the like. A display device 28, such as a CRT monitor or an LCDscreen, provides a visual display of the information that is beingprocessed within the computer, for example the contents of a document ora computer-generated image. A hard copy of this information can beprovided through a printer 30, facsimile machine (not shown), or similarsuch device. Each of these external peripheral devices communicates withthe CPU 14 by means of one or more input/output ports 32 on thecomputer.

FIG. 2 illustrates an example of a desktop which can be presented to auser on the display 28, via a graphical user interface. Typically, thedesktop display is controlled by the operating system which is loadedinto the computer's main memory 16 upon startup, and which causes thecomputer to carry out basic operations. The desktop 34 defines a spacewithin which the user can manipulate files, edit documents, and thelike. Above the desktop is a menu bar 36 containing a root menu ofcommands available to the user. Located on the desktop are various icons38 representing different folders in which the user may have storeddocuments, application programs, and other objects. Also shown on thedesktop is a window 40 which displays the contents of a text document.For example, the user may be operating a word processing program. As iswell known, if the word processing program is the currently activeprogram with which the user is interacting, the items appearing in themenu bar 36 pertain to commands that are provided by that program. Ifthe user switches to another program, a different set of commands mightappear in the root menu.

In the particular example illustrated in FIG. 2, the user has selectedone word within the text document, namely the word “Select”, asindicated by the highlighting. For example, the user could have selectedthis word by double-clicking a mouse button while a cursor 42 ispositioned over the word. Once the user selects an object, in this casea word, there are a number of different actions that can be performedwith respect to it. For example, the user may desire to move the word,for example by “cutting” it from its current location and “pasting” itat another location. Alternatively, the user may desire to copy theword, so that it can be duplicated at another location within thedocument. To perform either of these actions, the user moves the cursorto the “Edit” item in the menu bar 36 and performs an appropriateaction, e.g. clicking a mouse button, to cause a pull-down menu toappear, as illustrated in FIG. 3. The pull-down menu 44 lists commandsassociated with the “Edit” category. Included within those commands arethe options to “cut”, “copy”, and “paste” the selected word. By movingthe cursor over any one of these listed commands, and performing anappropriate action, such as clicking or releasing a mouse button, thechosen operation will be performed upon the selected object.

As an alternative to manipulating the object within the text, the usermay desire to change the appearance of the selected word. In this case,the user chooses the “Font” category from the root menu, to display itspull-down menu 46, as illustrated in FIG. 4. Referring thereto, the useris given the option to perform various actions which affect theappearance of the selected word.

From the foregoing, it can be seen that, each time an action is to beperformed upon an object by means of a menu command, the user firstselects the object on the desktop, and then moves the cursor to the menubar to locate the desired command. If the user is not familiar with theparticular category under which the command appears, the user may accessseveral pull-down menus from the menu bar before the desired command isactually located.

In accordance with the present invention, the amount of effort requiredon the part of the user is reduced, both in terms of knowledge ofcommands and physical movement of the cursor, to thereby enhance theuser experience. This reduction in effort is accomplished through theuse of contextual pop-up menus. An example of a contextual menu isillustrated in FIG. 5. This example will be explained with reference tothe previously described situation in which the user has selected theword “Select” within the text document in the window 40. After selectingthe object of interest, the user performs another specified action thatinvokes a contextual menu. For example, if a mouse device has two ormore buttons on it, the special action could be the actuation of adesignated one of the mouse buttons. Alternatively, if the mouse devicehas only a single button, the special action could be the actuation ofthe mouse button in combination with the depression of a particular keyon a keyboard. The following description will be provided for thesituation in which a contextual menu is invoked via the actuation of adesignated mouse button. In response to this action, a contextual menu48 is displayed on the desktop.

As an alternative, it is not necessary for the user to first select anobject and then request a contextual menu with a separate button click.Rather, the actuation of the designated button on the mouse can functionto both select an object and call up a contextual menu at the same time.

The contextual menu has two main attributes which function to enhancethe user experience. One of these attributes is the location of the menuitself. As illustrated in FIG. 5, the menu appears in the vicinity ofthe position where the cursor is located when the user takes thespecified action. In the specific example of FIG. 5, the menu appearsdirectly under the cursor. In practice, the menu can be offset from thecursor, for example so that it does not obscure the selected object. Inany case, it is sufficiently close to the cursor such that the user isnot required to move the cursor to the menu bar 36 at the top of thedesktop to invoke commands that operate upon the selected object.Preferably, the commands appear on the desktop at the location of thecursor, thereby minimizing the amount of travel that is required for amouse or other cursor control device.

The second major attribute of the contextual menu which contributes tothe enhancement of the user experience is its content. The commands thatare presented to the user in the contextual menu constitute those whichare appropriate for the selected object. Thus, in the case of a textdocument in which one or more words have been selected, the commandslisted in the contextual menu pertain to operations that can beperformed on those words. As shown in the example of FIG. 5, thosecommands might include “cut”, “copy” and “bold”. For a differentselected object, such as a graphic element, the contextual menu containsa different set of commands that are appropriate for that selection. Ina preferred embodiment of the invention, the commands that are presentedin a contextual menu do not necessarily constitute an exhaustive list ofall commands that can be applied to the selected object. Rather, themost frequently used commands are selected for presentation in thecontextual menu.

The specific commands presented in a contextual menu are determined, atleast in part, by the designers of application programs that operateupon selected objects. For example, the designer of a word processingapplication may determine that, when a user selects individual words orgroups of words, commands such as those illustrated in FIG. 5 are mostlikely to be used, and therefore appropriate. However, if the userselects a complete section of a document, or the entire document itself,it may be more likely that the user desires to reformat the document orchange its font. Consequently, a different set of commands are presentedin a contextual menu for that type of selection. Each applicationprogram therefore contains lists of commands that are to be displayed ina contextual menu for the different respective types of selections thatcan be made by users for the kind of data that is handled by theprogram. Thus, for example, a spreadsheet program might contain one listof commands that are to be displayed if the user selects a single datacell, another list of commands appropriate to the selection of a rangeof cells, and a third list of commands for the case where the userselects a chart within a spreadsheet.

In accordance with another feature of the present invention, thecommands that are presented in a contextual menu are not limited to thechoices provided by the currently active application program. Rather,additional commands can be displayed to invoke functions outside ofthose provided by the application. In the example of FIG. 5, threeadditional commands are shown at the bottom of the menu 48. The firstone of these commands relates to a general help function, which isprovided by the operating system itself. The latter two commands relateto a spelling checker and electronic mail capabilities, respectively.These two latter sets of functionality are provided by services outsideof the word processing application itself. For example, they can beprovided by separate software programs.

The manner in which the present invention operates to display thecontextual menus is explained with reference to FIGS. 6 and 7. FIG. 6 isan architectural block diagram of the software components that areinvolved in the presentation of a contextual menu. As discussedpreviously, one of the programs executed by a computer is its operatingsystem 50, which controls the basic operations of the computer. Inaddition, one or more application programs 52 can be running on thecomputer. Various plug-in modules 54 can be loaded into the computer'smemory 16, to provide specific types of functionality not availablethrough the operating system or the application programs. For example,as illustrated in FIG. 6, one plug-in module may provide electronic mailcapabilities, another may be associated with facsimile services, and athird may provide a dictionary of terms. Each of these components may beinitially stored on the hard disk 20 of the computer, and loaded intoits main memory 16 when the computer is running.

In operation, when the computer is initially started, each of theplug-in modules 54 is loaded into the memory 16, and registers itselfwith the operating system. The act of registration informs the operatingsystem that the module is to be notified whenever an event relating to acontextual menu happens. The operating system builds a registry ofactive modules, and calls each module's initialization routine, so thatit can determine the resources available within the system, for example.

The procedure for displaying a contextual menu is explained with furtherreference to the flow diagram of FIG. 7. The items in the flow diagramappear in three columns, which are respectively related to theapplication program, the operating system and the plug-in modules. Whena user takes an action that calls for the display of a contextual menu,e.g. the actuation of a designated mouse button, the application programfirst determines at Step 60 whether the event should be treated as aspecial event related to contextual menus. For example, if the user hasselected an item of content, a contextual menu would be appropriate.However, if the user has selected a non-content item, e.g. clicked on acommand from a pull-down menu, a contextual menu would not beappropriate.

Referring to FIG. 8, if the currently active application determines thatthe mouse click has occurred with respect to an item of content, itcalls a routine to determine the specific context of the event. At Step62, the application obtains the location of the cursor, for example fromthe operating system. At Step 64, a determination is made whether thelocation corresponds to any item of content under the control of theapplication. For example, the application can check whether the cursoris located within any of its currently open windows, or some otherobject under its control. If not, the application passes control to theoperating system at Step 66, so that the mouse click event can behandled appropriately. For example, the operating system may have itsown contextual menu routine, or it may need to pass the event on to adifferent application program running on the computer.

If the mouse clock event occurred on an item of content controlled bythe active application, that application retrieves a command listappropriate to the selected content, at Step 68. Referring again to FIG.6, an application may have several available command lists 53, that aresuited to different situations. Depending upon the particular selectionmade by the user, the application program retrieves an appropriate oneof the lists 53 for display in a contextual menu.

Before displaying the menu, the subroutine sends a message to theoperating system at Step 70, to inform it that a contextual menu eventhas occurred. In addition to this notification, the subroutine alsoprovides the operating system with an identification of the particularselection that has been made by the user. In the Macintosh OperatingSystem, Versions 7.0 and later, for example, such an identification canbe provided by means of a functionality known as Apple Events. Each timea user selects an object, an Apple Event occurs, which causes thegeneration of a descriptor of the selected object. For example, thisdescriptor can inform the operating system that the user has selectedthe fourteenth word in the first paragraph of the document “Untitled 1.”The information that a contextual menu event has occurred, together withthe selection, is passed to an event manager 56 within the operatingsystem (see FIG. 6). In response thereto, the event manager determineswhether any commands associated with the operating system are to appearin the contextual menu. For example, in some cases it may be appropriateto provide the user with access to system level commands, such asballoon help or user assistance sequences. In such a case, withreference to FIG. 7, the event manager retrieves the appropriatecommands to be displayed, at Step 72.

In addition, at Step 74 the event manager notifies each of the plug-inmodules which has registered with it. Each plug-in module is providedwith the description of the selected content, and examines the selectionat Step 76 to determine whether it can perform any activities on theselected object. For example, if the selection is text, a module such asa spell checker or a e-mailer will recognize that this is the type ofdata upon which it can perform an operation. If so, the module retrievesthe commands associated with the activities it can perform at Step 78,and provides them to the operating system. The operating system appendsthese commands to those which it has retrieved, at Step 80, and passesthem on to the application. After receiving the commands from theoperating system, the application adds them to its own list ofcontextual menu commands at Step 82, and displays the complete menu tothe user at Step 84, resulting in a display such as that illustrated inFIG. 5.

This procedure is schematically depicted in FIG. 9. As illustratedtherein, two of the plug-in modules 54 have each provided at command 55to be displayed in the contextual menu. These two commands are appendedto the command 51 provided by the operating system 50. This combined setof commands 57 is provided to the application 52, and appended to itsretrieved list of commands 53, to result in a complete list 58 thatappears in the contextual menu.

If the user chooses one of the commands from the menu, the applicationprogram first detects at Step 86 whether the chosen command is one thatit has provided, or one that was provided via the operating system. Inthe former case, the application program carries out the appropriateoperation at Step 88. If the user selects one of the commands outside ofthose provided by the application, the operating system is informed ofthe selected command at Step 90. The operating system then detects thesource of the chosen command at Step 92. If the command relates to asystem level operation, the appropriate action is carried out at Step94, e.g. display a balloon help item. Alternatively, if the command isone that was provided by a plug-in module, it is passed on to the moduleat Step 96, which then carries out the appropriate activity at Step 98.

From the foregoing, it can be seen that the present invention provides agraphical user interface which reduces the amount of effort required bythe user to carry out frequently used operations. By displaying acontextual menu in the vicinity of the cursor when user initiates anaction, the required amount of cursor movement is minimized.Furthermore, by displaying commands that are applicable to a selectedobject, the user is relieved of the burden of having to locate desiredcommands from multiple menus. In addition, by displaying commandsavailable from sources outside of the application program within whichthe user is working, a greater number of actions can be convenientlycarried out on the object.

It will be appreciated by those of ordinary skill in the art that thepresent invention can be embodied in other specific forms withoutdeparting from the spirit or essential characteristics thereof. Forexample, in the previously described embodiment the commands whichappear in a contextual menu are predetermined and stand in lists.However, other approaches can be employed to determine the commands todisplay. For instance, it may be appropriate to keep a count of eachcommand chosen by a user, and display those with the highest counts inthe contextual menu. Alternatively, it may be desirable to select thecommands at run-time by some other form of decision algorithm.

The presently disclosed embodiments are considered in all respects to beillustrative, and not restrictive. The scope of the invention isindicated by the appended claims rather than the foregoing description,and all changes that come within the meaning and range of equivalencethereof are intended to be embraced therein.

1. A user interface via which a computer operator causes actions to beperformed on objects appearing on a computer display, comprising: meansfor detecting a designated action by a user with respect to an objectunder the control of an application program running on a computer; meansresponsive to said designated action for retrieving a list of commandsprovided by the application program and associated with the object;means for adding commands, other than the commands provided by saidapplication program, to said list; and means for displaying said listwith the added commands on the computer display in the vicinity of theobject.
 2. The user interface of claim 1 wherein the designated actionincludes the positioning of a cursor on the object, and wherein saidlist is displayed at the location of the cursor.
 3. The user interfaceof claim 1 wherein said other commands are provided by an operatingsystem running on the computer.
 4. The user interface of claim 1 whereinsaid other commands are provided by plug-in software modules associatedwith an operating system running on the computer.
 5. A method forenabling a computer operator to invoke actions that are to be performedon objects appearing on a computer display, comprising the steps of:detecting a designated action by a user with respect to an object underthe control of an application program running on a computer; retrievinga list of commands provided by the application program and associatedwith the object, in response to said designated action; adding commandsother than the commands provided by said application program to saidlist; and displaying said list of commands on the computer display inthe vicinity of the object.
 6. The method of claim 5 wherein thedesignated action includes the positioning of a cursor on the object,and wherein said list is displayed at the location of the cursor.
 7. Themethod of claim 5 wherein said other commands are provided by anoperating system running on the computer.
 8. The method of claim 5wherein said other commands are provided by plug-in software modulesassociated with an operating system running on the computer.
 9. Themethod of claim 8 further including the step of detecting the selectionof one of said other commands by the user, and performing an operationon the object via one of said software modules.
 10. A computer readablemedium containing a program which performs the functions of: detecting adesignated action by a user with respect to an object under the controlof an application program running on a computer; retrieving a list ofcommands provided by the application program and associated with theobject, in response to said designated action; adding commands otherthan the commands provided by said application program to said list; anddisplaying said list of commands on the computer display in the vicinityof the object.
 11. The computer readable medium of claim 10, wherein thedesignated action includes the positioning of a cursor on the object,and wherein said list is displayed at the location of the cursor. 12.The computer readable medium of claim 10, wherein said other commandsare provided by plug-in software modules associated with an operatingsystem running on the computer.
 13. The computer readable medium ofclaim 12, further including the step of detecting the selection of oneof said other commands by the user, and performing an operation on theobject via one of said software modules.
 14. A computer system,comprising: a display device for displaying data objects; a userinterface for controlling the display of data objects which appear onsaid display device, said user interface including a pointing mechanismvia which a user can designate selected objects appearing on saiddisplay device and perform actions with respect thereto; a user inputdevice which a user can indicate a request to perform a particularoperation; and a software control system responsive to actuation of saiduser input device to request said particular operation for retrieving alist of commands relating to a selected object and causing the retrievedlist of commands to be displayed on said display device at a location inthe vicinity of the selected object.
 15. The computer system of claim 14wherein said software control system includes an application programthat can manipulate the selected object, and wherein at least one of thecommands on said list is provided by said application program.
 16. Thecomputer system of claim 14 wherein said software control systemincludes a first program that can directly manipulate the selectedobject, and a second program that is not associated with the selectedobject, and wherein at least one of the commands on said list isprovided by said second program.
 17. The computer system of claim 16wherein the commands on said list are provided by both of said first andsecond programs.
 18. The computer system of claim 16 wherein said secondprogram is an operating system for a computer.
 19. The computer systemof claim 16 wherein said second program is a software module that isregistered with an operating system for a computer.
 20. A user interfacevia which a computer operator causes actions to be performed on objectsappearing on a computer display, comprising: means for detecting adesignated action by a user with respect to an object under the controlof an application program running on a computer; means responsive tosaid designated action for retrieving a list of commands provided by theapplication program and associated with the object; means for addingcommands, other than the commands provided by said application program,to said list; and means for displaying said list with the added commandson the computer display.
 21. The user interface of claim 20 wherein saidother commands are provided by an operating system running on thecomputer.
 22. The user interface of claim 30 wherein said other commandsare provided by plug-in software modules associated with an operatingsystem running on the computer.
 23. A user interface via which acomputer operator causes actions to be performed on objects appearing ona computer display, comprising: means for detecting a designated actionby a user with respect to an object under the control of an applicationprogram running on a computer; means responsive to said designatedaction for retrieving a list of commands provided by the applicationprogram and associated with the object; and means for displaying saidlist of commands on the computer display in the vicinity of the object.24. The user interface of claim 23 wherein the designated actionincludes the positioning of a cursor on the object, and wherein saidlist is displayed at the location of the cursor.